package com.ccjq.jq173.shosestore.order.service;

import com.ccjq.jq173.shosestore.order.po.Order;
import com.ccjq.jq173.shosestore.order.po.OrderProduct;

import java.sql.Connection;
import java.util.List;
import java.util.Map;

public interface OrderService
{

    /**
     * 添加订单商品关联表
     * @param orderId   订单ID
     * @param productId 商品ID
     * @param quantity  购买数量
     * @param price     购买时价格
     * @return true添加成功 false添加失败
     */
    boolean addOrderProduct(String orderId, String productId, int quantity, double price, Connection con);

    /**
     * 添加订单
     * @param order 订单对象
     * @return  true添加成功 false添加失败
     */
    boolean createOrder(Map<String,Object> order);

    /**
     * 查询当前用户下所有的订单
     * @return 订单的集合
     */
    List<Order> queryAllOrders(String userId);

    /**
     * 查询指定订单的详细信息
     * @param orderId   订单号
     * @return  订单实体映射对象
     */
    Order queryOneOrder(String orderId);

    /**
     * 查询指定订单的购物车记录
     * @param orderId   订单号
     * @return  订单商品关联表的实体映射对象
     */
    List<OrderProduct> queryBuylog(String orderId);

    /**
     * 查询给定页下的订单信息
     * @param userid    用户ID
     * @return  一个LIst集合
     */
    List<Order> getPageList(int startRow,int pageSize,String userid);

    /**
     * 查询数据库中的记录数量
     * @param userid    用户ID
     * @return  该用户的订单数量
     */
    int getCount(String userid);

}
